package ec.edu.ups.relevo.notificaciones.jms;

import java.io.Serializable;

import javax.ejb.Stateless;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.MapMessage;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.Session;
import javax.naming.Context;
import javax.naming.InitialContext;

import ec.edu.ups.relevo.utils.ParametrosApp;
/**
 * Clase que se conecta a la cola de mensajes para encolar una peticion
 */
@Stateless
public class JMSClient
{
public void enviarMensaje(Serializable mensaje)
{
	 Context ic = null; 
	 ConnectionFactory cf = null; 
	 Connection connection = null;
	 Session session =null;
	try 
	{ 

		ic = new InitialContext();
			cf = (ConnectionFactory)ic.lookup("java:/ConnectionFactory"); 
			Queue queue = (Queue)ic.lookup(ParametrosApp.COLA_JMS); 
			connection = cf.createConnection(); 
			session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
			
			MessageProducer publisher = session.createProducer(queue); connection.start();
			ObjectMessage message = session.createObjectMessage();
			message.setObject(mensaje);
			publisher.send(message);
			System.out.println("Enviado a cola de mensajes");
	 } catch (Exception exc) 
	 { 
		 exc.printStackTrace(); 
	 } 
	 finally
	 {
		 /**
		  * Deja cerrando las conexiones
		  */
		 try {session.close();} catch (JMSException e) {e.printStackTrace();}
		 try {connection.close();} catch (JMSException e) {e.printStackTrace();}
	 }
	
} 

	

}
